package com.liu.qqRobot.wm.entity.dto;

import cn.hutool.core.annotation.Alias;
import com.liu.common.entity.BaseEntity;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class WarframeMarketLichAuctionDTO extends BaseEntity {

    /**
     * 一口价
     */
    @Alias("buyout_price")
    private Integer buyoutPrice;

    private String note;

    private Boolean visible;

    private Item item;

    /**
     * 起拍价
     */
    @Alias("starting_price")
    private Integer startingPrice;

    @Alias("minimal_reputation")
    private Integer minimalReputation;

    /**
     * 卖家信息
     */
    private Owner owner;

    private String platform;

    /**
     * 是否关闭
     */
    private Boolean closed;

    /**
     * 最高出价
     */
    @Alias("top_bid")
    private Integer topBid;

    /**
     * 买家
     */
    private String winner;

    @Alias("is_marked_for")
    private String isMarkedFor;

    @Alias("marked_operation_at")
    private String markedOperationAt;

    private String created;

    private String updated;

    @Alias("note_raw")
    private String noteRaw;

    @Alias("is_direct_sell")
    private Boolean isDirectSell;

    private String id;

    @Alias("private")
    private Boolean privateB;

    /**
     * 顺序 offline-3 ingame-1 online-2
     */
    private Integer sort;

    @Getter
    @Setter
    public static class Item extends BaseEntity {

        /**
         * 加成数值
         */
        private Integer damage;

        /**
         * 怪癖
         */
        private String quirk;

        /**
         * 属性
         */
        private String element;

        /**
         * 类型 sister（姐妹玄骸） riven（紫卡） lich（赤毒玄骸）
         */
        private String type;

        /**
         * 是否有幻纹
         */
        @Alias("having_ephemera")
        private Boolean havingEphemera;

        @Alias("weapon_url_name")
        private String weaponUrlName;
    }

    @Getter
    @Setter
    public static class Owner extends BaseEntity {

        /**
         * 声誉
         */
        private Integer reputation;

        private String locale;

        private String avatar;

        @Alias("last_seen")
        private String lastSeen;

        @Alias("ingame_name")
        private String ingameName;

        private String status;

        private String id;

        private String region;
    }

}
